using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication5.UILayer
{
    public partial class frmOrdenesFarmacia : Form
    {
        ServiciosWeb.Service servicio = new ServiciosWeb.Service(); 

        public frmOrdenesFarmacia()
        {
            InitializeComponent();
        }

        private void btnAgregarMedicamento_Click(object sender, EventArgs e)
        {
            if (gridMedicamentosSel.Rows.Count < 4)
            {
                frmBuscarMedicamento f = new frmBuscarMedicamento();
                f.MdiParent = this.MdiParent;
                f.FormClosing += new FormClosingEventHandler(f_FormClosing);
                this.Enabled = false;
                f.Show();
            }
            else
            {
                MessageBox.Show("Solo se pueden agregar hasta 4 medicamentos");
            }
        }

        void f_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.Enabled = true;
            frmBuscarMedicamento f = sender as frmBuscarMedicamento;
            if (f.medicamentoSeleccionado != null)
            {
                gridMedicamentosSel.Rows.Add(1);
                int indice = gridMedicamentosSel.Rows.Count - 1;
                if (indice >= 0)
                {
                    gridMedicamentosSel.Rows[indice].Cells[0].Value = f.medicamentoSeleccionado.ItemArray[0];
                    gridMedicamentosSel.Rows[indice].Cells[1].Value = f.medicamentoSeleccionado.ItemArray[1];
                    gridMedicamentosSel.Rows[indice].Cells[2].Value = f.medicamentoSeleccionado.ItemArray[2];
                    gridMedicamentosSel.Rows[indice].Cells[3].Value = f.medicamentoSeleccionado.ItemArray[3];
                }
            }
        }

        private void frmOrdenesFarmacia_Load(object sender, EventArgs e)
        {
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            if (txtNroOrden.Text == "")
            {
                MessageBox.Show("Ingrese primero el Numero de Atencion");
            }
            else
            {
                DataTable dtAtencion = servicio.atencionesBuscarAtencion(txtNroOrden.Text);
                if (dtAtencion.Rows[0]["familiardni"].ToString() == "")
                {
                    DataTable dtAfiliado = servicio.afiliadosObtenerAfiliado(dtAtencion.Rows[0]["afiliadodni"].ToString());
                    txtApellido.Text = dtAfiliado.Rows[0]["Apellido"].ToString();
                    txtNombre.Text = dtAfiliado.Rows[0]["Nombre"].ToString();
                }
                else
                {
                    DataTable dtFamiliar = servicio.familiaresBuscarFamiliar(dtAtencion.Rows[0]["familiardni"].ToString());
                    txtApellido.Text = dtFamiliar.Rows[0]["familiarapellido"].ToString();
                    txtNombre.Text = dtFamiliar.Rows[0]["familiarnombre"].ToString();
                }

                cmbFarmacia.DataSource = servicio.farmaciaListar();
                cmbFarmacia.DisplayMember = "Nombre";
                cmbFarmacia.ValueMember = "ID";
                cmbFarmacia.Text = "Seleccione una farmacia";
            }
        }

        private void TSBSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnEliminarMedicamento_Click(object sender, EventArgs e)
        {
            gridMedicamentosSel.Rows.Remove(gridMedicamentosSel.SelectedRows[0]);
        }

        private void TSBSolicitar_Click(object sender, EventArgs e)
        {
            string farmaciaid = cmbFarmacia.SelectedValue.ToString();
            string fecha = cmbfechaPedido.Value.ToString("yyyy-MM-dd");
            string[] medicamentos = {"null", "null", "null", "null" };

            int count = gridMedicamentosSel.Rows.Count - 1;

            for (int i = 0; i <= count; i++)
            {
                medicamentos[i] = gridMedicamentosSel.Rows[i].Cells[0].Value.ToString();
            }

            try
            {
                string resultado = servicio.OrdenFarmaciaNueva(fecha, farmaciaid, txtNroOrden.Text, medicamentos[0], medicamentos[1], medicamentos[2], medicamentos[3]);
                MessageBox.Show(resultado);
                limpiarCampos();
            }
            catch
            {
                MessageBox.Show("No se pudo realizar la operacion");
            }
        }

        void limpiarCampos()
        {
            txtNroOrden.Clear();
            txtNombre.Clear();
            txtApellido.Clear();
            gridMedicamentosSel.Rows.Clear();
            cmbFarmacia.DataSource = null;
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            limpiarCampos();
        }
    }
}